﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace Hoguet.RTM.WCF
{
    [ServiceContract]
    public interface IRtmMetricRestService
    {

        [OperationContract]
        [WebGet(UriTemplate = "/GetWeeksHoursRemaining",
            BodyStyle = WebMessageBodyStyle.Wrapped,
            ResponseFormat = WebMessageFormat.Json
        )]
        IEnumerable<Metric<DateTime, double>>GetWeeksHoursRemaining();

        [OperationContract]
        [WebGet(UriTemplate = "/GetHabits",
            BodyStyle = WebMessageBodyStyle.Wrapped,
            ResponseFormat = WebMessageFormat.Json
        )]
        IEnumerable<Metric<string, int>> GetHabits();

        [OperationContract]
        [WebGet(UriTemplate = "/GetOldest",
            BodyStyle = WebMessageBodyStyle.Wrapped,
            ResponseFormat = WebMessageFormat.Json
        )]
        IEnumerable<Metric<string, int>> GetOldest();

        [OperationContract]
        [WebGet(UriTemplate = "/GetTagged",
            BodyStyle = WebMessageBodyStyle.Wrapped,
            ResponseFormat = WebMessageFormat.Json
        )]
        IEnumerable<Metric<string, DateTime?>> GetTagged();
    }
}
